import type React from 'react'; import type { Metadata } from 'next'; import { Geist } from 'next/font/google'; import { Suspense } from 'react'; import { notFound } from 'next/navigation'; import '../globals.css'; import { ThemeProvider } from '@/components/theme-provider'; import { TranslationProvider } from '@/contexts/translation-context'; import { Toaster } from '@/components/ui/sonner'; import { QueryProvider } from '@/hoc/provider'; import { AuthEventListener } from '@/components/AuthEventListener'; import { AuthorCredit } from '@/components/author-credit'; import { LOCALES, type Locale } from '@/config/constants'; import { getDictionary } from './locales'; const geist = Geist({ subsets: ['latin'] }); export const metadata: Metadata = { title: 'Nextivite', description: 'Next.js boilerplate scaffolded by create-reactivite.', }; export function generateStaticParams() { return LOCALES.map((locale) => ({ locale })); } export default async function LocaleLayout({ children, params, }: Readonly<{ children: React.ReactNode; params: Promise<{ locale: string }>; }>) { const { locale } = await params; if (!LOCALES.includes(locale as Locale)) { notFound(); } const messages = await getDictionary(locale as Locale); return (